package com.ourteam.product.model.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 IRKT 2017
 * Auto Generate Date : 2017-11-17 11:01:01
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductModelPropertyDAOQueryBean extends BaseQueryBean {
    public ProductModelPropertyDAOQueryBean() {
        super();
    }

    public ProductModelPropertyDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductModelPropertyDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.Id, "id");
        }
    }

    public void addObjectIdSelectProperty() {
        addObjectIdSelectProperty("objectId");
    }

    public void addObjectIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.ObjectId, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.ObjectId, "objectId");
        }
    }

    public void addPropertyCodeSelectProperty() {
        addPropertyCodeSelectProperty("propertyCode");
    }

    public void addPropertyCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.PropertyCode, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.PropertyCode,
                "propertyCode");
        }
    }

    public void addPropertyNameSelectProperty() {
        addPropertyNameSelectProperty("propertyName");
    }

    public void addPropertyNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.PropertyName, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.PropertyName,
                "propertyName");
        }
    }

    public void addDataTypeIdSelectProperty() {
        addDataTypeIdSelectProperty("dataTypeId");
    }

    public void addDataTypeIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.DataTypeId, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.DataTypeId, "dataTypeId");
        }
    }

    public void addDataLengthSelectProperty() {
        addDataLengthSelectProperty("dataLength");
    }

    public void addDataLengthSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.DataLength, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.DataLength, "dataLength");
        }
    }

    public void addDataAccuracySelectProperty() {
        addDataAccuracySelectProperty("dataAccuracy");
    }

    public void addDataAccuracySelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.DataAccuracy, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.DataAccuracy,
                "dataAccuracy");
        }
    }

    public void addIsArraySelectProperty() {
        addIsArraySelectProperty("isArray");
    }

    public void addIsArraySelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.IsArray, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.IsArray, "isArray");
        }
    }

    public void addIsAllowNullSelectProperty() {
        addIsAllowNullSelectProperty("isAllowNull");
    }

    public void addIsAllowNullSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.IsAllowNull, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.IsAllowNull,
                "isAllowNull");
        }
    }

    public void addIsPrimaryKeySelectProperty() {
        addIsPrimaryKeySelectProperty("isPrimaryKey");
    }

    public void addIsPrimaryKeySelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.IsPrimaryKey, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.IsPrimaryKey,
                "isPrimaryKey");
        }
    }

    public void addIsAutoIncSelectProperty() {
        addIsAutoIncSelectProperty("isAutoInc");
    }

    public void addIsAutoIncSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.IsAutoInc, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.IsAutoInc, "isAutoInc");
        }
    }

    public void addSortIndexSelectProperty() {
        addSortIndexSelectProperty("sortIndex");
    }

    public void addSortIndexSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.SortIndex, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.SortIndex, "sortIndex");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.Remarks, "remarks");
        }
    }

    public void addDataTypeSelectProperty() {
        addDataTypeSelectProperty("dataType");
    }

    public void addDataTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.DataType, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.DataType, "dataType");
        }
    }

    public void addDefaultValueSelectProperty() {
        addDefaultValueSelectProperty("defaultValue");
    }

    public void addDefaultValueSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.DefaultValue, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.DefaultValue,
                "defaultValue");
        }
    }

    public void addIsUniqueSelectProperty() {
        addIsUniqueSelectProperty("isUnique");
    }

    public void addIsUniqueSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.IsUnique, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.IsUnique, "isUnique");
        }
    }

    public void addSubmitterIdSelectProperty() {
        addSubmitterIdSelectProperty("submitterId");
    }

    public void addSubmitterIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.SubmitterId, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.SubmitterId,
                "submitterId");
        }
    }

    public void addCreatorNameSelectProperty() {
        addCreatorNameSelectProperty("creatorName");
    }

    public void addCreatorNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.CreatorName, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.CreatorName,
                "creatorName");
        }
    }

    public void addCreateTimeSelectProperty() {
        addCreateTimeSelectProperty("createTime");
    }

    public void addCreateTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.CreateTime, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.CreateTime, "createTime");
        }
    }

    public void addLastModifierNameSelectProperty() {
        addLastModifierNameSelectProperty("lastModifierName");
    }

    public void addLastModifierNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.LastModifierName, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.LastModifierName,
                "lastModifierName");
        }
    }

    public void addLastModifyTimeSelectProperty() {
        addLastModifyTimeSelectProperty("lastModifyTime");
    }

    public void addLastModifyTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.LastModifyTime, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.LastModifyTime,
                "lastModifyTime");
        }
    }

    public void addObjectNameSelectProperty() {
        addObjectNameSelectProperty("objectName");
    }

    public void addObjectNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.ObjectName, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.ObjectName, "objectName");
        }
    }

    public void addObjectCodeSelectProperty() {
        addObjectCodeSelectProperty("objectCode");
    }

    public void addObjectCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.ObjectCode, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.ObjectCode, "objectCode");
        }
    }

    public void addObjectTypeSelectProperty() {
        addObjectTypeSelectProperty("objectType");
    }

    public void addObjectTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelPropertyDAO.ObjectType, aAlias);
        } else {
            addSelectProperty(IProductModelPropertyDAO.ObjectType, "objectType");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addObjectIdSelectProperty();

        addPropertyCodeSelectProperty();

        addPropertyNameSelectProperty();

        addDataTypeIdSelectProperty();

        addDataLengthSelectProperty();

        addDataAccuracySelectProperty();

        addIsArraySelectProperty();

        addIsAllowNullSelectProperty();

        addIsPrimaryKeySelectProperty();

        addIsAutoIncSelectProperty();

        addSortIndexSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addDataTypeSelectProperty();

        addDefaultValueSelectProperty();

        addIsUniqueSelectProperty();

        addSubmitterIdSelectProperty();

        addCreatorNameSelectProperty();

        addCreateTimeSelectProperty();

        addLastModifierNameSelectProperty();

        addLastModifyTimeSelectProperty();

        addObjectNameSelectProperty();

        addObjectCodeSelectProperty();

        addObjectTypeSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductModelPropertyDAOQueryBean> {
        protected Criteria(ProductModelPropertyDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductModelPropertyDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductModelPropertyDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.Id + " is not null AND " +
                IProductModelPropertyDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.Id + " is null OR " +
                IProductModelPropertyDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " is null OR " +
                IProductModelPropertyDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Id + " not in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.Id + " not in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Id + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andObjectIdIsNull() {
            addCriterion(IProductModelPropertyDAO.ObjectId + " is null");

            return this;
        }

        public Criteria andObjectIdIsNotNull() {
            addCriterion(IProductModelPropertyDAO.ObjectId + " is not null");

            return this;
        }

        public Criteria andObjectIdIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.ObjectId +
                " is not null AND " + IProductModelPropertyDAO.ObjectId +
                " <> ''");

            return this;
        }

        public Criteria andObjectIdIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.ObjectId +
                " is null OR " + IProductModelPropertyDAO.ObjectId + " = '')");

            return this;
        }

        public Criteria andObjectIdEqualTo(long value) {
            return andObjectIdEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " = ", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdNotEqualTo(long value) {
            return andObjectIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " <>", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdNotEqualToOrIsNull(long value) {
            return andObjectIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andObjectIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " is null OR " +
                IProductModelPropertyDAO.ObjectId + " <>", value, "objectId");

            return this;
        }

        public Criteria andObjectIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdGreaterThan(long value) {
            return andObjectIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andObjectIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " >", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(long value) {
            return andObjectIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " >=", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdLessThan(long value) {
            return andObjectIdLessThan(Long.valueOf(value));
        }

        public Criteria andObjectIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " <", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualTo(long value) {
            return andObjectIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " <=", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdIn(long[] values) {
            if (values.length == 1) {
                return andObjectIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectId + " in", values,
                    "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(long[] values) {
            if (values.length == 1) {
                return andObjectIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectId + " not in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectId + " in", values,
                    "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectId + " not in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectId + " in",
                    Arrays.asList(values), "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectId + " not in",
                    Arrays.asList(values), "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " not between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.ObjectId + " not between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andPropertyCodeIsNull() {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " is null");

            return this;
        }

        public Criteria andPropertyCodeIsNotNull() {
            addCriterion(IProductModelPropertyDAO.PropertyCode +
                " is not null");

            return this;
        }

        public Criteria andPropertyCodeIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.PropertyCode +
                " is not null AND " + IProductModelPropertyDAO.PropertyCode +
                " <> ''");

            return this;
        }

        public Criteria andPropertyCodeIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.PropertyCode +
                " is null OR " + IProductModelPropertyDAO.PropertyCode +
                " = '')");

            return this;
        }

        public Criteria andPropertyCodeEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " = ", value,
                "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " <>", value,
                "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode +
                " is null OR " + IProductModelPropertyDAO.PropertyCode + " <>",
                value, "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " >", value,
                "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " >=", value,
                "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " <", value,
                "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " <=", value,
                "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.PropertyCode + " like",
                buffer.toString(), "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.PropertyCode + " not like",
                buffer.toString(), "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyCode + " in",
                    values, "propertyCode");

                return this;
            }
        }

        public Criteria andPropertyCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyCode + " not in",
                    values, "propertyCode");

                return this;
            }
        }

        public Criteria andPropertyCodeIn(String[] values) {
            if (values.length == 1) {
                return andPropertyCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyCode + " in",
                    Arrays.asList(values), "propertyCode");

                return this;
            }
        }

        public Criteria andPropertyCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andPropertyCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyCode + " not in",
                    Arrays.asList(values), "propertyCode");

                return this;
            }
        }

        public Criteria andPropertyCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyCodeBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.PropertyCode + " between",
                value1, value2, "propertyCode");

            return this;
        }

        public Criteria andPropertyCodeNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.PropertyCode +
                " not between", value1, value2, "propertyCode");

            return this;
        }

        public Criteria andPropertyNameIsNull() {
            addCriterion(IProductModelPropertyDAO.PropertyName + " is null");

            return this;
        }

        public Criteria andPropertyNameIsNotNull() {
            addCriterion(IProductModelPropertyDAO.PropertyName +
                " is not null");

            return this;
        }

        public Criteria andPropertyNameIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.PropertyName +
                " is not null AND " + IProductModelPropertyDAO.PropertyName +
                " <> ''");

            return this;
        }

        public Criteria andPropertyNameIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.PropertyName +
                " is null OR " + IProductModelPropertyDAO.PropertyName +
                " = '')");

            return this;
        }

        public Criteria andPropertyNameEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " = ", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " <>", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName +
                " is null OR " + IProductModelPropertyDAO.PropertyName + " <>",
                value, "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " >", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " >=", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " <", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " <=", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.PropertyName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.PropertyName + " like",
                buffer.toString(), "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.PropertyName + " not like",
                buffer.toString(), "propertyName");

            return this;
        }

        public Criteria andPropertyNameIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyName + " in",
                    values, "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyName + " not in",
                    values, "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameIn(String[] values) {
            if (values.length == 1) {
                return andPropertyNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyName + " in",
                    Arrays.asList(values), "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameNotIn(String[] values) {
            if (values.length == 1) {
                return andPropertyNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.PropertyName + " not in",
                    Arrays.asList(values), "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.PropertyName + " between",
                value1, value2, "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.PropertyName +
                " not between", value1, value2, "propertyName");

            return this;
        }

        public Criteria andDataTypeIdIsNull() {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " is null");

            return this;
        }

        public Criteria andDataTypeIdIsNotNull() {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " is not null");

            return this;
        }

        public Criteria andDataTypeIdIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.DataTypeId +
                " is not null AND " + IProductModelPropertyDAO.DataTypeId +
                " <> ''");

            return this;
        }

        public Criteria andDataTypeIdIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.DataTypeId +
                " is null OR " + IProductModelPropertyDAO.DataTypeId +
                " = '')");

            return this;
        }

        public Criteria andDataTypeIdEqualTo(long value) {
            return andDataTypeIdEqualTo(Long.valueOf(value));
        }

        public Criteria andDataTypeIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " = ", value,
                "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataTypeId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdNotEqualTo(long value) {
            return andDataTypeIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andDataTypeIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " <>", value,
                "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdNotEqualToOrIsNull(long value) {
            return andDataTypeIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andDataTypeIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " is null OR " +
                IProductModelPropertyDAO.DataTypeId + " <>", value, "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataTypeId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdGreaterThan(long value) {
            return andDataTypeIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andDataTypeIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " >", value,
                "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataTypeId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdGreaterThanOrEqualTo(long value) {
            return andDataTypeIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andDataTypeIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " >=", value,
                "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataTypeId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdLessThan(long value) {
            return andDataTypeIdLessThan(Long.valueOf(value));
        }

        public Criteria andDataTypeIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " <", value,
                "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataTypeId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdLessThanOrEqualTo(long value) {
            return andDataTypeIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andDataTypeIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " <=", value,
                "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataTypeId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdIn(long[] values) {
            if (values.length == 1) {
                return andDataTypeIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataTypeId + " in",
                    values, "dataTypeId");

                return this;
            }
        }

        public Criteria andDataTypeIdNotIn(long[] values) {
            if (values.length == 1) {
                return andDataTypeIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataTypeId + " not in",
                    values, "dataTypeId");

                return this;
            }
        }

        public Criteria andDataTypeIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andDataTypeIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataTypeId + " in",
                    values, "dataTypeId");

                return this;
            }
        }

        public Criteria andDataTypeIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andDataTypeIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataTypeId + " not in",
                    values, "dataTypeId");

                return this;
            }
        }

        public Criteria andDataTypeIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andDataTypeIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataTypeId + " in",
                    Arrays.asList(values), "dataTypeId");

                return this;
            }
        }

        public Criteria andDataTypeIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andDataTypeIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataTypeId + " not in",
                    Arrays.asList(values), "dataTypeId");

                return this;
            }
        }

        public Criteria andDataTypeIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeIdBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " between",
                value1, value2, "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " between",
                value1, value2, "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " not between",
                value1, value2, "dataTypeId");

            return this;
        }

        public Criteria andDataTypeIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.DataTypeId + " not between",
                value1, value2, "dataTypeId");

            return this;
        }

        public Criteria andDataLengthIsNull() {
            addCriterion(IProductModelPropertyDAO.DataLength + " is null");

            return this;
        }

        public Criteria andDataLengthIsNotNull() {
            addCriterion(IProductModelPropertyDAO.DataLength + " is not null");

            return this;
        }

        public Criteria andDataLengthIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.DataLength +
                " is not null AND " + IProductModelPropertyDAO.DataLength +
                " <> ''");

            return this;
        }

        public Criteria andDataLengthIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.DataLength +
                " is null OR " + IProductModelPropertyDAO.DataLength +
                " = '')");

            return this;
        }

        public Criteria andDataLengthEqualTo(int value) {
            return andDataLengthEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataLengthEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " = ", value,
                "dataLength");

            return this;
        }

        public Criteria andDataLengthEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataLength);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataLengthEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthNotEqualTo(int value) {
            return andDataLengthNotEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataLengthNotEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " <>", value,
                "dataLength");

            return this;
        }

        public Criteria andDataLengthNotEqualToOrIsNull(int value) {
            return andDataLengthNotEqualToOrIsNull(Integer.valueOf(value));
        }

        public Criteria andDataLengthNotEqualToOrIsNull(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " is null OR " +
                IProductModelPropertyDAO.DataLength + " <>", value, "dataLength");

            return this;
        }

        public Criteria andDataLengthNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataLength);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataLengthNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthGreaterThan(int value) {
            return andDataLengthGreaterThan(Integer.valueOf(value));
        }

        public Criteria andDataLengthGreaterThan(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " >", value,
                "dataLength");

            return this;
        }

        public Criteria andDataLengthGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataLength);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataLengthGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthGreaterThanOrEqualTo(int value) {
            return andDataLengthGreaterThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataLengthGreaterThanOrEqualTo(
            java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " >=", value,
                "dataLength");

            return this;
        }

        public Criteria andDataLengthGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataLength);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataLengthGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthLessThan(int value) {
            return andDataLengthLessThan(Integer.valueOf(value));
        }

        public Criteria andDataLengthLessThan(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " <", value,
                "dataLength");

            return this;
        }

        public Criteria andDataLengthLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataLength);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataLengthLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthLessThanOrEqualTo(int value) {
            return andDataLengthLessThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataLengthLessThanOrEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataLength + " <=", value,
                "dataLength");

            return this;
        }

        public Criteria andDataLengthLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataLength);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataLengthLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthIn(int[] values) {
            if (values.length == 1) {
                return andDataLengthEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataLength + " in",
                    values, "dataLength");

                return this;
            }
        }

        public Criteria andDataLengthNotIn(int[] values) {
            if (values.length == 1) {
                return andDataLengthNotEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataLength + " not in",
                    values, "dataLength");

                return this;
            }
        }

        public Criteria andDataLengthIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andDataLengthEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataLength + " in",
                    values, "dataLength");

                return this;
            }
        }

        public Criteria andDataLengthNotIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andDataLengthNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataLength + " not in",
                    values, "dataLength");

                return this;
            }
        }

        public Criteria andDataLengthIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andDataLengthEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataLength + " in",
                    Arrays.asList(values), "dataLength");

                return this;
            }
        }

        public Criteria andDataLengthNotIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andDataLengthNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataLength + " not in",
                    Arrays.asList(values), "dataLength");

                return this;
            }
        }

        public Criteria andDataLengthIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataLength + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataLengthBetween(int value1, int value2) {
            addCriterion(IProductModelPropertyDAO.DataLength + " between",
                value1, value2, "dataLength");

            return this;
        }

        public Criteria andDataLengthBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelPropertyDAO.DataLength + " between",
                value1, value2, "dataLength");

            return this;
        }

        public Criteria andDataLengthNotBetween(int value1, int value2) {
            addCriterion(IProductModelPropertyDAO.DataLength + " not between",
                value1, value2, "dataLength");

            return this;
        }

        public Criteria andDataLengthNotBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelPropertyDAO.DataLength + " not between",
                value1, value2, "dataLength");

            return this;
        }

        public Criteria andDataAccuracyIsNull() {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " is null");

            return this;
        }

        public Criteria andDataAccuracyIsNotNull() {
            addCriterion(IProductModelPropertyDAO.DataAccuracy +
                " is not null");

            return this;
        }

        public Criteria andDataAccuracyIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.DataAccuracy +
                " is not null AND " + IProductModelPropertyDAO.DataAccuracy +
                " <> ''");

            return this;
        }

        public Criteria andDataAccuracyIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.DataAccuracy +
                " is null OR " + IProductModelPropertyDAO.DataAccuracy +
                " = '')");

            return this;
        }

        public Criteria andDataAccuracyEqualTo(int value) {
            return andDataAccuracyEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " = ", value,
                "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataAccuracy);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataAccuracyEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyNotEqualTo(int value) {
            return andDataAccuracyNotEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyNotEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " <>", value,
                "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyNotEqualToOrIsNull(int value) {
            return andDataAccuracyNotEqualToOrIsNull(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyNotEqualToOrIsNull(
            java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy +
                " is null OR " + IProductModelPropertyDAO.DataAccuracy + " <>",
                value, "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataAccuracy);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataAccuracyNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyGreaterThan(int value) {
            return andDataAccuracyGreaterThan(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyGreaterThan(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " >", value,
                "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataAccuracy);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataAccuracyGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyGreaterThanOrEqualTo(int value) {
            return andDataAccuracyGreaterThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyGreaterThanOrEqualTo(
            java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " >=", value,
                "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataAccuracy);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataAccuracyGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyLessThan(int value) {
            return andDataAccuracyLessThan(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyLessThan(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " <", value,
                "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataAccuracy);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataAccuracyLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyLessThanOrEqualTo(int value) {
            return andDataAccuracyLessThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andDataAccuracyLessThanOrEqualTo(
            java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " <=", value,
                "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataAccuracy);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataAccuracyLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyIn(int[] values) {
            if (values.length == 1) {
                return andDataAccuracyEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataAccuracy + " in",
                    values, "dataAccuracy");

                return this;
            }
        }

        public Criteria andDataAccuracyNotIn(int[] values) {
            if (values.length == 1) {
                return andDataAccuracyNotEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataAccuracy + " not in",
                    values, "dataAccuracy");

                return this;
            }
        }

        public Criteria andDataAccuracyIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andDataAccuracyEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataAccuracy + " in",
                    values, "dataAccuracy");

                return this;
            }
        }

        public Criteria andDataAccuracyNotIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andDataAccuracyNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataAccuracy + " not in",
                    values, "dataAccuracy");

                return this;
            }
        }

        public Criteria andDataAccuracyIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andDataAccuracyEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataAccuracy + " in",
                    Arrays.asList(values), "dataAccuracy");

                return this;
            }
        }

        public Criteria andDataAccuracyNotIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andDataAccuracyNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataAccuracy + " not in",
                    Arrays.asList(values), "dataAccuracy");

                return this;
            }
        }

        public Criteria andDataAccuracyIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataAccuracyBetween(int value1, int value2) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " between",
                value1, value2, "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy + " between",
                value1, value2, "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyNotBetween(int value1, int value2) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy +
                " not between", value1, value2, "dataAccuracy");

            return this;
        }

        public Criteria andDataAccuracyNotBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelPropertyDAO.DataAccuracy +
                " not between", value1, value2, "dataAccuracy");

            return this;
        }

        public Criteria andIsArrayIsNull() {
            addCriterion(IProductModelPropertyDAO.IsArray + " is null");

            return this;
        }

        public Criteria andIsArrayIsNotNull() {
            addCriterion(IProductModelPropertyDAO.IsArray + " is not null");

            return this;
        }

        public Criteria andIsArrayIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.IsArray +
                " is not null AND " + IProductModelPropertyDAO.IsArray +
                " <> ''");

            return this;
        }

        public Criteria andIsArrayIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.IsArray +
                " is null OR " + IProductModelPropertyDAO.IsArray + " = '')");

            return this;
        }

        public Criteria andIsArrayEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " = ", value,
                "isArray");

            return this;
        }

        public Criteria andIsArrayEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsArray);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsArrayEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " <>", value,
                "isArray");

            return this;
        }

        public Criteria andIsArrayNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " is null OR " +
                IProductModelPropertyDAO.IsArray + " <>", value, "isArray");

            return this;
        }

        public Criteria andIsArrayNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsArray);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsArrayNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " >", value,
                "isArray");

            return this;
        }

        public Criteria andIsArrayGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsArray);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsArrayGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " >=", value,
                "isArray");

            return this;
        }

        public Criteria andIsArrayGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsArray);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsArrayGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " <", value,
                "isArray");

            return this;
        }

        public Criteria andIsArrayLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsArray);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsArrayLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsArray + " <=", value,
                "isArray");

            return this;
        }

        public Criteria andIsArrayLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsArray);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsArrayLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsArray + " like",
                buffer.toString(), "isArray");

            return this;
        }

        public Criteria andIsArrayNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsArray + " not like",
                buffer.toString(), "isArray");

            return this;
        }

        public Criteria andIsArrayIn(List<String> values) {
            if (values.size() == 1) {
                return andIsArrayEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsArray + " in", values,
                    "isArray");

                return this;
            }
        }

        public Criteria andIsArrayNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIsArrayNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsArray + " not in",
                    values, "isArray");

                return this;
            }
        }

        public Criteria andIsArrayIn(String[] values) {
            if (values.length == 1) {
                return andIsArrayEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsArray + " in",
                    Arrays.asList(values), "isArray");

                return this;
            }
        }

        public Criteria andIsArrayNotIn(String[] values) {
            if (values.length == 1) {
                return andIsArrayNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsArray + " not in",
                    Arrays.asList(values), "isArray");

                return this;
            }
        }

        public Criteria andIsArrayIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsArray + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsArrayBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsArray + " between", value1,
                value2, "isArray");

            return this;
        }

        public Criteria andIsArrayNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsArray + " not between",
                value1, value2, "isArray");

            return this;
        }

        public Criteria andIsAllowNullIsNull() {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " is null");

            return this;
        }

        public Criteria andIsAllowNullIsNotNull() {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " is not null");

            return this;
        }

        public Criteria andIsAllowNullIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.IsAllowNull +
                " is not null AND " + IProductModelPropertyDAO.IsAllowNull +
                " <> ''");

            return this;
        }

        public Criteria andIsAllowNullIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.IsAllowNull +
                " is null OR " + IProductModelPropertyDAO.IsAllowNull +
                " = '')");

            return this;
        }

        public Criteria andIsAllowNullEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " = ", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAllowNull);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAllowNullEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " <>", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " is null OR " +
                IProductModelPropertyDAO.IsAllowNull + " <>", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAllowNull);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAllowNullNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " >", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAllowNull);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAllowNullGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " >=", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAllowNull);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAllowNullGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " <", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAllowNull);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAllowNullLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " <=", value,
                "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAllowNull);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAllowNullLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " like",
                buffer.toString(), "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " not like",
                buffer.toString(), "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullIn(List<String> values) {
            if (values.size() == 1) {
                return andIsAllowNullEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsAllowNull + " in",
                    values, "isAllowNull");

                return this;
            }
        }

        public Criteria andIsAllowNullNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIsAllowNullNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsAllowNull + " not in",
                    values, "isAllowNull");

                return this;
            }
        }

        public Criteria andIsAllowNullIn(String[] values) {
            if (values.length == 1) {
                return andIsAllowNullEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsAllowNull + " in",
                    Arrays.asList(values), "isAllowNull");

                return this;
            }
        }

        public Criteria andIsAllowNullNotIn(String[] values) {
            if (values.length == 1) {
                return andIsAllowNullNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsAllowNull + " not in",
                    Arrays.asList(values), "isAllowNull");

                return this;
            }
        }

        public Criteria andIsAllowNullIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAllowNullBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " between",
                value1, value2, "isAllowNull");

            return this;
        }

        public Criteria andIsAllowNullNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsAllowNull + " not between",
                value1, value2, "isAllowNull");

            return this;
        }

        public Criteria andIsPrimaryKeyIsNull() {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " is null");

            return this;
        }

        public Criteria andIsPrimaryKeyIsNotNull() {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey +
                " is not null");

            return this;
        }

        public Criteria andIsPrimaryKeyIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey +
                " is not null AND " + IProductModelPropertyDAO.IsPrimaryKey +
                " <> ''");

            return this;
        }

        public Criteria andIsPrimaryKeyIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.IsPrimaryKey +
                " is null OR " + IProductModelPropertyDAO.IsPrimaryKey +
                " = '')");

            return this;
        }

        public Criteria andIsPrimaryKeyEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " = ", value,
                "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsPrimaryKey);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsPrimaryKeyEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " <>", value,
                "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey +
                " is null OR " + IProductModelPropertyDAO.IsPrimaryKey + " <>",
                value, "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsPrimaryKey);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsPrimaryKeyNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " >", value,
                "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsPrimaryKey);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsPrimaryKeyGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " >=", value,
                "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsPrimaryKey);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsPrimaryKeyGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " <", value,
                "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsPrimaryKey);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsPrimaryKeyLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " <=", value,
                "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsPrimaryKey);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsPrimaryKeyLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " like",
                buffer.toString(), "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " not like",
                buffer.toString(), "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyIn(List<String> values) {
            if (values.size() == 1) {
                return andIsPrimaryKeyEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " in",
                    values, "isPrimaryKey");

                return this;
            }
        }

        public Criteria andIsPrimaryKeyNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIsPrimaryKeyNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " not in",
                    values, "isPrimaryKey");

                return this;
            }
        }

        public Criteria andIsPrimaryKeyIn(String[] values) {
            if (values.length == 1) {
                return andIsPrimaryKeyEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " in",
                    Arrays.asList(values), "isPrimaryKey");

                return this;
            }
        }

        public Criteria andIsPrimaryKeyNotIn(String[] values) {
            if (values.length == 1) {
                return andIsPrimaryKeyNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " not in",
                    Arrays.asList(values), "isPrimaryKey");

                return this;
            }
        }

        public Criteria andIsPrimaryKeyIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsPrimaryKeyBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey + " between",
                value1, value2, "isPrimaryKey");

            return this;
        }

        public Criteria andIsPrimaryKeyNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsPrimaryKey +
                " not between", value1, value2, "isPrimaryKey");

            return this;
        }

        public Criteria andIsAutoIncIsNull() {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " is null");

            return this;
        }

        public Criteria andIsAutoIncIsNotNull() {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " is not null");

            return this;
        }

        public Criteria andIsAutoIncIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.IsAutoInc +
                " is not null AND " + IProductModelPropertyDAO.IsAutoInc +
                " <> ''");

            return this;
        }

        public Criteria andIsAutoIncIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.IsAutoInc +
                " is null OR " + IProductModelPropertyDAO.IsAutoInc + " = '')");

            return this;
        }

        public Criteria andIsAutoIncEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " = ", value,
                "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAutoInc);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAutoIncEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " <>", value,
                "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " is null OR " +
                IProductModelPropertyDAO.IsAutoInc + " <>", value, "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAutoInc);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAutoIncNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " >", value,
                "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAutoInc);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAutoIncGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " >=", value,
                "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAutoInc);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAutoIncGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " <", value,
                "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAutoInc);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAutoIncLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " <=", value,
                "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsAutoInc);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsAutoIncLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " like",
                buffer.toString(), "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " not like",
                buffer.toString(), "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncIn(List<String> values) {
            if (values.size() == 1) {
                return andIsAutoIncEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsAutoInc + " in",
                    values, "isAutoInc");

                return this;
            }
        }

        public Criteria andIsAutoIncNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIsAutoIncNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsAutoInc + " not in",
                    values, "isAutoInc");

                return this;
            }
        }

        public Criteria andIsAutoIncIn(String[] values) {
            if (values.length == 1) {
                return andIsAutoIncEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsAutoInc + " in",
                    Arrays.asList(values), "isAutoInc");

                return this;
            }
        }

        public Criteria andIsAutoIncNotIn(String[] values) {
            if (values.length == 1) {
                return andIsAutoIncNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsAutoInc + " not in",
                    Arrays.asList(values), "isAutoInc");

                return this;
            }
        }

        public Criteria andIsAutoIncIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsAutoIncBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " between",
                value1, value2, "isAutoInc");

            return this;
        }

        public Criteria andIsAutoIncNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsAutoInc + " not between",
                value1, value2, "isAutoInc");

            return this;
        }

        public Criteria andSortIndexIsNull() {
            addCriterion(IProductModelPropertyDAO.SortIndex + " is null");

            return this;
        }

        public Criteria andSortIndexIsNotNull() {
            addCriterion(IProductModelPropertyDAO.SortIndex + " is not null");

            return this;
        }

        public Criteria andSortIndexIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.SortIndex +
                " is not null AND " + IProductModelPropertyDAO.SortIndex +
                " <> ''");

            return this;
        }

        public Criteria andSortIndexIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.SortIndex +
                " is null OR " + IProductModelPropertyDAO.SortIndex + " = '')");

            return this;
        }

        public Criteria andSortIndexEqualTo(int value) {
            return andSortIndexEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " = ", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SortIndex);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexNotEqualTo(int value) {
            return andSortIndexNotEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexNotEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " <>", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotEqualToOrIsNull(int value) {
            return andSortIndexNotEqualToOrIsNull(Integer.valueOf(value));
        }

        public Criteria andSortIndexNotEqualToOrIsNull(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " is null OR " +
                IProductModelPropertyDAO.SortIndex + " <>", value, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SortIndex);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexGreaterThan(int value) {
            return andSortIndexGreaterThan(Integer.valueOf(value));
        }

        public Criteria andSortIndexGreaterThan(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " >", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SortIndex);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(int value) {
            return andSortIndexGreaterThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(
            java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " >=", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SortIndex);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexLessThan(int value) {
            return andSortIndexLessThan(Integer.valueOf(value));
        }

        public Criteria andSortIndexLessThan(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " <", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SortIndex);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualTo(int value) {
            return andSortIndexLessThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexLessThanOrEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " <=", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SortIndex);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexIn(int[] values) {
            if (values.length == 1) {
                return andSortIndexEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SortIndex + " in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(int[] values) {
            if (values.length == 1) {
                return andSortIndexNotEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SortIndex + " not in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andSortIndexEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.SortIndex + " in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andSortIndexNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.SortIndex + " not in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andSortIndexEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SortIndex + " in",
                    Arrays.asList(values), "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andSortIndexNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SortIndex + " not in",
                    Arrays.asList(values), "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexBetween(int value1, int value2) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotBetween(int value1, int value2) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " not between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelPropertyDAO.SortIndex + " not between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductModelPropertyDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductModelPropertyDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.Status + " is not null AND " +
                IProductModelPropertyDAO.Status + " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.Status +
                " is null OR " + IProductModelPropertyDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " = ", value,
                "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " <>", value,
                "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " is null OR " +
                IProductModelPropertyDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " >", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " >=", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " <", value, "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Status + " <=", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.Status + " in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.Status + " not in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.Status + " between", value1,
                value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductModelPropertyDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductModelPropertyDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.Remarks +
                " is not null AND " + IProductModelPropertyDAO.Remarks +
                " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.Remarks +
                " is null OR " + IProductModelPropertyDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " is null OR " +
                IProductModelPropertyDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " >", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " <", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.Remarks + " in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.Remarks + " between", value1,
                value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andDataTypeIsNull() {
            addCriterion(IProductModelPropertyDAO.DataType + " is null");

            return this;
        }

        public Criteria andDataTypeIsNotNull() {
            addCriterion(IProductModelPropertyDAO.DataType + " is not null");

            return this;
        }

        public Criteria andDataTypeIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.DataType +
                " is not null AND " + IProductModelPropertyDAO.DataType +
                " <> ''");

            return this;
        }

        public Criteria andDataTypeIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.DataType +
                " is null OR " + IProductModelPropertyDAO.DataType + " = '')");

            return this;
        }

        public Criteria andDataTypeEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " = ", value,
                "dataType");

            return this;
        }

        public Criteria andDataTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " <>", value,
                "dataType");

            return this;
        }

        public Criteria andDataTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " is null OR " +
                IProductModelPropertyDAO.DataType + " <>", value, "dataType");

            return this;
        }

        public Criteria andDataTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " >", value,
                "dataType");

            return this;
        }

        public Criteria andDataTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " >=", value,
                "dataType");

            return this;
        }

        public Criteria andDataTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " <", value,
                "dataType");

            return this;
        }

        public Criteria andDataTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DataType + " <=", value,
                "dataType");

            return this;
        }

        public Criteria andDataTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DataType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDataTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.DataType + " like",
                buffer.toString(), "dataType");

            return this;
        }

        public Criteria andDataTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.DataType + " not like",
                buffer.toString(), "dataType");

            return this;
        }

        public Criteria andDataTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andDataTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataType + " in", values,
                    "dataType");

                return this;
            }
        }

        public Criteria andDataTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andDataTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DataType + " not in",
                    values, "dataType");

                return this;
            }
        }

        public Criteria andDataTypeIn(String[] values) {
            if (values.length == 1) {
                return andDataTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataType + " in",
                    Arrays.asList(values), "dataType");

                return this;
            }
        }

        public Criteria andDataTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andDataTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DataType + " not in",
                    Arrays.asList(values), "dataType");

                return this;
            }
        }

        public Criteria andDataTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DataType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDataTypeBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.DataType + " between",
                value1, value2, "dataType");

            return this;
        }

        public Criteria andDataTypeNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.DataType + " not between",
                value1, value2, "dataType");

            return this;
        }

        public Criteria andDefaultValueIsNull() {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " is null");

            return this;
        }

        public Criteria andDefaultValueIsNotNull() {
            addCriterion(IProductModelPropertyDAO.DefaultValue +
                " is not null");

            return this;
        }

        public Criteria andDefaultValueIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.DefaultValue +
                " is not null AND " + IProductModelPropertyDAO.DefaultValue +
                " <> ''");

            return this;
        }

        public Criteria andDefaultValueIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.DefaultValue +
                " is null OR " + IProductModelPropertyDAO.DefaultValue +
                " = '')");

            return this;
        }

        public Criteria andDefaultValueEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " = ", value,
                "defaultValue");

            return this;
        }

        public Criteria andDefaultValueEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DefaultValue);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDefaultValueEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " <>", value,
                "defaultValue");

            return this;
        }

        public Criteria andDefaultValueNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue +
                " is null OR " + IProductModelPropertyDAO.DefaultValue + " <>",
                value, "defaultValue");

            return this;
        }

        public Criteria andDefaultValueNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DefaultValue);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDefaultValueNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " >", value,
                "defaultValue");

            return this;
        }

        public Criteria andDefaultValueGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DefaultValue);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDefaultValueGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " >=", value,
                "defaultValue");

            return this;
        }

        public Criteria andDefaultValueGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DefaultValue);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDefaultValueGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " <", value,
                "defaultValue");

            return this;
        }

        public Criteria andDefaultValueLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DefaultValue);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDefaultValueLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " <=", value,
                "defaultValue");

            return this;
        }

        public Criteria andDefaultValueLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.DefaultValue);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDefaultValueLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.DefaultValue + " like",
                buffer.toString(), "defaultValue");

            return this;
        }

        public Criteria andDefaultValueNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.DefaultValue + " not like",
                buffer.toString(), "defaultValue");

            return this;
        }

        public Criteria andDefaultValueIn(List<String> values) {
            if (values.size() == 1) {
                return andDefaultValueEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DefaultValue + " in",
                    values, "defaultValue");

                return this;
            }
        }

        public Criteria andDefaultValueNotIn(List<String> values) {
            if (values.size() == 1) {
                return andDefaultValueNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.DefaultValue + " not in",
                    values, "defaultValue");

                return this;
            }
        }

        public Criteria andDefaultValueIn(String[] values) {
            if (values.length == 1) {
                return andDefaultValueEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DefaultValue + " in",
                    Arrays.asList(values), "defaultValue");

                return this;
            }
        }

        public Criteria andDefaultValueNotIn(String[] values) {
            if (values.length == 1) {
                return andDefaultValueNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.DefaultValue + " not in",
                    Arrays.asList(values), "defaultValue");

                return this;
            }
        }

        public Criteria andDefaultValueIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDefaultValueBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.DefaultValue + " between",
                value1, value2, "defaultValue");

            return this;
        }

        public Criteria andDefaultValueNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.DefaultValue +
                " not between", value1, value2, "defaultValue");

            return this;
        }

        public Criteria andIsUniqueIsNull() {
            addCriterion(IProductModelPropertyDAO.IsUnique + " is null");

            return this;
        }

        public Criteria andIsUniqueIsNotNull() {
            addCriterion(IProductModelPropertyDAO.IsUnique + " is not null");

            return this;
        }

        public Criteria andIsUniqueIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.IsUnique +
                " is not null AND " + IProductModelPropertyDAO.IsUnique +
                " <> ''");

            return this;
        }

        public Criteria andIsUniqueIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.IsUnique +
                " is null OR " + IProductModelPropertyDAO.IsUnique + " = '')");

            return this;
        }

        public Criteria andIsUniqueEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " = ", value,
                "isUnique");

            return this;
        }

        public Criteria andIsUniqueEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsUnique);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsUniqueEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " <>", value,
                "isUnique");

            return this;
        }

        public Criteria andIsUniqueNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " is null OR " +
                IProductModelPropertyDAO.IsUnique + " <>", value, "isUnique");

            return this;
        }

        public Criteria andIsUniqueNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsUnique);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsUniqueNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " >", value,
                "isUnique");

            return this;
        }

        public Criteria andIsUniqueGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsUnique);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsUniqueGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " >=", value,
                "isUnique");

            return this;
        }

        public Criteria andIsUniqueGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsUnique);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsUniqueGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " <", value,
                "isUnique");

            return this;
        }

        public Criteria andIsUniqueLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsUnique);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsUniqueLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " <=", value,
                "isUnique");

            return this;
        }

        public Criteria andIsUniqueLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.IsUnique);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIsUniqueLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsUnique + " like",
                buffer.toString(), "isUnique");

            return this;
        }

        public Criteria andIsUniqueNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.IsUnique + " not like",
                buffer.toString(), "isUnique");

            return this;
        }

        public Criteria andIsUniqueIn(List<String> values) {
            if (values.size() == 1) {
                return andIsUniqueEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsUnique + " in", values,
                    "isUnique");

                return this;
            }
        }

        public Criteria andIsUniqueNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIsUniqueNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.IsUnique + " not in",
                    values, "isUnique");

                return this;
            }
        }

        public Criteria andIsUniqueIn(String[] values) {
            if (values.length == 1) {
                return andIsUniqueEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsUnique + " in",
                    Arrays.asList(values), "isUnique");

                return this;
            }
        }

        public Criteria andIsUniqueNotIn(String[] values) {
            if (values.length == 1) {
                return andIsUniqueNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.IsUnique + " not in",
                    Arrays.asList(values), "isUnique");

                return this;
            }
        }

        public Criteria andIsUniqueIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIsUniqueBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " between",
                value1, value2, "isUnique");

            return this;
        }

        public Criteria andIsUniqueNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.IsUnique + " not between",
                value1, value2, "isUnique");

            return this;
        }

        public Criteria andSubmitterIdIsNull() {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " is null");

            return this;
        }

        public Criteria andSubmitterIdIsNotNull() {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " is not null");

            return this;
        }

        public Criteria andSubmitterIdIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.SubmitterId +
                " is not null AND " + IProductModelPropertyDAO.SubmitterId +
                " <> ''");

            return this;
        }

        public Criteria andSubmitterIdIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.SubmitterId +
                " is null OR " + IProductModelPropertyDAO.SubmitterId +
                " = '')");

            return this;
        }

        public Criteria andSubmitterIdEqualTo(long value) {
            return andSubmitterIdEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " = ", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SubmitterId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdNotEqualTo(long value) {
            return andSubmitterIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " <>", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotEqualToOrIsNull(long value) {
            return andSubmitterIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andSubmitterIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " is null OR " +
                IProductModelPropertyDAO.SubmitterId + " <>", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SubmitterId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdGreaterThan(long value) {
            return andSubmitterIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andSubmitterIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " >", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SubmitterId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdGreaterThanOrEqualTo(long value) {
            return andSubmitterIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " >=", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SubmitterId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdLessThan(long value) {
            return andSubmitterIdLessThan(Long.valueOf(value));
        }

        public Criteria andSubmitterIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " <", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SubmitterId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdLessThanOrEqualTo(long value) {
            return andSubmitterIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " <=", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.SubmitterId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdIn(long[] values) {
            if (values.length == 1) {
                return andSubmitterIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SubmitterId + " in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdNotIn(long[] values) {
            if (values.length == 1) {
                return andSubmitterIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SubmitterId + " not in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andSubmitterIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.SubmitterId + " in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andSubmitterIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.SubmitterId + " not in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andSubmitterIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SubmitterId + " in",
                    Arrays.asList(values), "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andSubmitterIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.SubmitterId + " not in",
                    Arrays.asList(values), "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " not between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelPropertyDAO.SubmitterId + " not between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andCreatorNameIsNull() {
            addCriterion(IProductModelPropertyDAO.CreatorName + " is null");

            return this;
        }

        public Criteria andCreatorNameIsNotNull() {
            addCriterion(IProductModelPropertyDAO.CreatorName + " is not null");

            return this;
        }

        public Criteria andCreatorNameIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.CreatorName +
                " is not null AND " + IProductModelPropertyDAO.CreatorName +
                " <> ''");

            return this;
        }

        public Criteria andCreatorNameIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.CreatorName +
                " is null OR " + IProductModelPropertyDAO.CreatorName +
                " = '')");

            return this;
        }

        public Criteria andCreatorNameEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " = ", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreatorName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " <>", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " is null OR " +
                IProductModelPropertyDAO.CreatorName + " <>", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreatorName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " >", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreatorName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " >=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreatorName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " <", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreatorName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " <=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreatorName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.CreatorName + " like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.CreatorName + " not like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.CreatorName + " in",
                    values, "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.CreatorName + " not in",
                    values, "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.CreatorName + " in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.CreatorName + " not in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " between",
                value1, value2, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.CreatorName + " not between",
                value1, value2, "creatorName");

            return this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion(IProductModelPropertyDAO.CreateTime + " is null");

            return this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion(IProductModelPropertyDAO.CreateTime + " is not null");

            return this;
        }

        public Criteria andCreateTimeIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.CreateTime +
                " is not null AND " + IProductModelPropertyDAO.CreateTime +
                " <> ''");

            return this;
        }

        public Criteria andCreateTimeIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.CreateTime +
                " is null OR " + IProductModelPropertyDAO.CreateTime +
                " = '')");

            return this;
        }

        public Criteria andCreateTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " = ", value, "createTime");

            return this;
        }

        public Criteria andCreateTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreateTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " <>", value, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " is null OR " + IProductModelPropertyDAO.CreateTime + " <>",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreateTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime + " >",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreateTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " >=", value, "createTime");

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreateTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime + " <",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreateTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " <=", value, "createTime");

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.CreateTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                    " in", values, "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                    " not in", values, "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                    " in", Arrays.asList(values), "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                    " not in", Arrays.asList(values), "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.CreateTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " between", value1, value2, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.CreateTime +
                " not between", value1, value2, "createTime");

            return this;
        }

        public Criteria andLastModifierNameIsNull() {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " is null");

            return this;
        }

        public Criteria andLastModifierNameIsNotNull() {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " is not null");

            return this;
        }

        public Criteria andLastModifierNameIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " is not null AND " +
                IProductModelPropertyDAO.LastModifierName + " <> ''");

            return this;
        }

        public Criteria andLastModifierNameIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.LastModifierName +
                " is null OR " + IProductModelPropertyDAO.LastModifierName +
                " = '')");

            return this;
        }

        public Criteria andLastModifierNameEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " = ",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifierName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " <>",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " is null OR " + IProductModelPropertyDAO.LastModifierName +
                " <>", value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifierName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " >",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifierName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " >=",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifierName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " <",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifierName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " <=",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifierName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.LastModifierName + " like",
                buffer.toString(), "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " not like", buffer.toString(), "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameIn(List<String> values) {
            if (values.size() == 1) {
                return andLastModifierNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.LastModifierName + " in",
                    values, "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andLastModifierNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.LastModifierName +
                    " not in", values, "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameIn(String[] values) {
            if (values.length == 1) {
                return andLastModifierNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.LastModifierName + " in",
                    Arrays.asList(values), "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameNotIn(String[] values) {
            if (values.length == 1) {
                return andLastModifierNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.LastModifierName +
                    " not in", Arrays.asList(values), "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " between", value1, value2, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelPropertyDAO.LastModifierName +
                " not between", value1, value2, "lastModifierName");

            return this;
        }

        public Criteria andLastModifyTimeIsNull() {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " is null");

            return this;
        }

        public Criteria andLastModifyTimeIsNotNull() {
            addCriterion(IProductModelPropertyDAO.LastModifyTime +
                " is not null");

            return this;
        }

        public Criteria andLastModifyTimeIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.LastModifyTime +
                " is not null AND " + IProductModelPropertyDAO.LastModifyTime +
                " <> ''");

            return this;
        }

        public Criteria andLastModifyTimeIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.LastModifyTime +
                " is null OR " + IProductModelPropertyDAO.LastModifyTime +
                " = '')");

            return this;
        }

        public Criteria andLastModifyTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " = ", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifyTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " <>", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotEqualToOrIsNull(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " is null OR " + IProductModelPropertyDAO.LastModifyTime +
                " <>", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifyTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " >", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifyTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " >=", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifyTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " <", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifyTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " <=", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.LastModifyTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastModifyTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                    " in", values, "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastModifyTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                    " not in", values, "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastModifyTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                    " in", Arrays.asList(values), "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastModifyTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                    " not in", Arrays.asList(values), "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.LastModifyTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " between", value1, value2, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelPropertyDAO.LastModifyTime +
                " not between", value1, value2, "lastModifyTime");

            return this;
        }

        public Criteria andObjectNameIsNull() {
            addCriterion(IProductModelPropertyDAO.ObjectName + " is null");

            return this;
        }

        public Criteria andObjectNameIsNotNull() {
            addCriterion(IProductModelPropertyDAO.ObjectName + " is not null");

            return this;
        }

        public Criteria andObjectNameIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.ObjectName +
                " is not null AND " + IProductModelPropertyDAO.ObjectName +
                " <> ''");

            return this;
        }

        public Criteria andObjectNameIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.ObjectName +
                " is null OR " + IProductModelPropertyDAO.ObjectName +
                " = '')");

            return this;
        }

        public Criteria andObjectNameEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " = ", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " <>", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " is null OR " +
                IProductModelPropertyDAO.ObjectName + " <>", value, "objectName");

            return this;
        }

        public Criteria andObjectNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " >", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " >=", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " <", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " <=", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.ObjectName + " like",
                buffer.toString(), "objectName");

            return this;
        }

        public Criteria andObjectNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.ObjectName + " not like",
                buffer.toString(), "objectName");

            return this;
        }

        public Criteria andObjectNameIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectName + " in",
                    values, "objectName");

                return this;
            }
        }

        public Criteria andObjectNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectName + " not in",
                    values, "objectName");

                return this;
            }
        }

        public Criteria andObjectNameIn(String[] values) {
            if (values.length == 1) {
                return andObjectNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectName + " in",
                    Arrays.asList(values), "objectName");

                return this;
            }
        }

        public Criteria andObjectNameNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectName + " not in",
                    Arrays.asList(values), "objectName");

                return this;
            }
        }

        public Criteria andObjectNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " between",
                value1, value2, "objectName");

            return this;
        }

        public Criteria andObjectNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.ObjectName + " not between",
                value1, value2, "objectName");

            return this;
        }

        public Criteria andObjectCodeIsNull() {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " is null");

            return this;
        }

        public Criteria andObjectCodeIsNotNull() {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " is not null");

            return this;
        }

        public Criteria andObjectCodeIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.ObjectCode +
                " is not null AND " + IProductModelPropertyDAO.ObjectCode +
                " <> ''");

            return this;
        }

        public Criteria andObjectCodeIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.ObjectCode +
                " is null OR " + IProductModelPropertyDAO.ObjectCode +
                " = '')");

            return this;
        }

        public Criteria andObjectCodeEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " = ", value,
                "objectCode");

            return this;
        }

        public Criteria andObjectCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " <>", value,
                "objectCode");

            return this;
        }

        public Criteria andObjectCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " is null OR " +
                IProductModelPropertyDAO.ObjectCode + " <>", value, "objectCode");

            return this;
        }

        public Criteria andObjectCodeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " >", value,
                "objectCode");

            return this;
        }

        public Criteria andObjectCodeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " >=", value,
                "objectCode");

            return this;
        }

        public Criteria andObjectCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " <", value,
                "objectCode");

            return this;
        }

        public Criteria andObjectCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " <=", value,
                "objectCode");

            return this;
        }

        public Criteria andObjectCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.ObjectCode + " like",
                buffer.toString(), "objectCode");

            return this;
        }

        public Criteria andObjectCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.ObjectCode + " not like",
                buffer.toString(), "objectCode");

            return this;
        }

        public Criteria andObjectCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectCode + " in",
                    values, "objectCode");

                return this;
            }
        }

        public Criteria andObjectCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectCode + " not in",
                    values, "objectCode");

                return this;
            }
        }

        public Criteria andObjectCodeIn(String[] values) {
            if (values.length == 1) {
                return andObjectCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectCode + " in",
                    Arrays.asList(values), "objectCode");

                return this;
            }
        }

        public Criteria andObjectCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectCode + " not in",
                    Arrays.asList(values), "objectCode");

                return this;
            }
        }

        public Criteria andObjectCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectCodeBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " between",
                value1, value2, "objectCode");

            return this;
        }

        public Criteria andObjectCodeNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.ObjectCode + " not between",
                value1, value2, "objectCode");

            return this;
        }

        public Criteria andObjectTypeIsNull() {
            addCriterion(IProductModelPropertyDAO.ObjectType + " is null");

            return this;
        }

        public Criteria andObjectTypeIsNotNull() {
            addCriterion(IProductModelPropertyDAO.ObjectType + " is not null");

            return this;
        }

        public Criteria andObjectTypeIsNotEmpty() {
            addCriterion(IProductModelPropertyDAO.ObjectType +
                " is not null AND " + IProductModelPropertyDAO.ObjectType +
                " <> ''");

            return this;
        }

        public Criteria andObjectTypeIsEmpty() {
            addCriterion("(" + IProductModelPropertyDAO.ObjectType +
                " is null OR " + IProductModelPropertyDAO.ObjectType +
                " = '')");

            return this;
        }

        public Criteria andObjectTypeEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " = ", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeNotEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " <>", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " is null OR " +
                IProductModelPropertyDAO.ObjectType + " <>", value, "objectType");

            return this;
        }

        public Criteria andObjectTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeGreaterThan(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " >", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " >=", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeLessThan(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " <", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " <=", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelPropertyDAO.ObjectType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.ObjectType + " like",
                buffer.toString(), "objectType");

            return this;
        }

        public Criteria andObjectTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelPropertyDAO.ObjectType + " not like",
                buffer.toString(), "objectType");

            return this;
        }

        public Criteria andObjectTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectType + " in",
                    values, "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectType + " not in",
                    values, "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeIn(String[] values) {
            if (values.length == 1) {
                return andObjectTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectType + " in",
                    Arrays.asList(values), "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelPropertyDAO.ObjectType + " not in",
                    Arrays.asList(values), "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " between",
                value1, value2, "objectType");

            return this;
        }

        public Criteria andObjectTypeNotBetween(String value1, String value2) {
            addCriterion(IProductModelPropertyDAO.ObjectType + " not between",
                value1, value2, "objectType");

            return this;
        }
    }
}
